1. Field of the Invention
This invention relates generally to data communication, and more particularly to protocols for efficiently identifying peripheral devices on a network while reducing data congestion and decreasing device recognition time on the network.
2. Description of the Related Art
The art of networking computers has evolved over the years to bring computer users a rich communication and data sharing experience. Typically, in a network, numerous devices may be connected to a computer to maximize computing power and efficiency. As is well known, new levels of sophisticated communication technologies enable users to share information across both large and small networks. Most of the world's computers communicate via computer networks by communicating data from one node to another node utilizing various data transport protocols. One typical type of protocol utilizing networks for data transmission is TCP/IP. TCP/IP is a set of protocols developed to allow cooperating computers to share resources across a network. TCP (the “transmission control protocol”) is responsible for breaking up a message into variable length segments, reassembling them at the other end, resending anything that gets lost, and putting things back in the right order. IP (the “internet protocol”) is responsible for routing individual segments. Utilizing such protocols as IP, computer networks may transfer data from one node to another.
As a high level overview, take an exemplary data file that is selected for communication over a network using the TCP protocol. Initially, the TCP protocol will break up the data file into a plurality of variable length segments. Each variable length segment is then packaged with an associated TCP header. An IP header will also be added to the beginning of the packet. The packets are now transmitted over the network, where each packet may potentially travel a different path (e.g., through a plurality of routers and the like) in their journey to a destination. At the destination, the TCP protocol is charged with receiving the packets.
For example, TCP/IP may be utilized in a data storage network for the sending and receiving of data with a SCSI host adapter and a typical NIC. To do this, network interface cards (NICs) with initiators are often utilized to communicate data and peripheral device information throughout the network. NICs may generally connect a computer or other type of node to a network. NICs are typically a circuit, an ASIC, or a host adaptor card that are often utilized in Ethernet or token ring networks. Initiators generally are located within a NIC and originates an input/output command over a network, bus, etc.
Unlike general communication networks, which assume that all attached devices are peers and that any given device will want to communicate with only a small subset of other devices, storage networks are hierarchical, with a few initiators in communication with many targets, and with targets in communication only with initiators, or with other targets under the control of an initiator. Typically, this storage viewpoint requires that initiators be able to locate all the targets, and be able to communicate with many or all of them.
Problematically, present methods to manage and determine the peripheral devices connected to the network have high data transmission overhead and often requires an additional directory agent to keep track of all of the peripheral devices. In addition, frequent use of broadcasting in the prior art can cause congestion in switch based networks. Typically large networks have many targets and numerous initiators. In addition, large networks have a directory that is generally set up by network administrators. Large networks also generally require a network administrator to assign IP addresses to devices on the network so a directory agent may keep track of them. Furthermore, in the process of setting up directories, network administrators must often decide on the scope of each directory such as geographic extent or types of devices. In such a configuration, targets may register their existence and addresses with the directory agent, and initiators or hosts may then communicate with the directory agent and poll all of the targets to determine the existence of every peripheral device connected to the network. Therefore, every initiator generally polls all directory agents at certain intervals to determine the target connection. This arrangement can cause data transfer congestion. Unfortunately frequent polling generally occurs in an attempt to obtain quick discovery of targets, but the resulting network congestion can create the degradation of target discovery and reduction in the speed of target recognition due to packet dropping. Consequently, polling occasionally means new devices take a long time to be “found” by the initiators.
For example, although new targets will often broadcast a signal to state to the network that it exists and is connected to the network, if a directory is present, as is usually the case in large networks, the directory registers the device and it will only broadcast once. This may be good for bandwidth, but also means that some initiators may not “see” the target's broadcast (dropped packets) so even if they are listening for such broadcasts to find out if a new target has joined the network, they tend to miss its joining and will not find out till they are polled. Therefore, target recognition speed may be severely hampered, and in some circumstances, target recognition may not occur.
Unfortunately, in small networks, directory agents are generally not utilized so all of the initiators on the network tend to poll extremely often so they can find all of the targets on the network. Regrettably, such numerous pollings create excess data traffic on the network and therefore decrease available bandwidth. Furthermore, targets themselves attempt to broadcast that they are connected onto the network thereby increasing data congestion even more. In addition, because small networks typically do not have a network administrator who can perform tasks such as, for example, assigning IP addresses to targets, such networks do not generally operate in a centralized and organized manner because there is no entity to assist in the organization and centralization of network connections and configurations. Even medium size systems tend to need directories to keep the initiator polling overhead from getting too large which entails once again to have a network administrator to look over the network.
For example, at startup of a small network, initiators typically broadcasts a query of all of the targets to determine what devices may be connected to the network. At the same time, targets may broadcast signals throughout the network in an attempt to notify initiators of their existence. In such a configuration, initiators generally broadcasts signals to communicate with the targets. Once again, this creates excess data transmissions and network congestion. Therefore, in typical peripheral device discovery, the network becomes congested with the initiators and targets all trying to communicate to each other without any sort of organization. In essence, initiators and targets are involved in a “free for all” in an attempt to communicate with each other. This results in excessive data transmission and dramatically lowers the network's ability to transmit data.
Furthermore, when a new target such as a peripheral device is added to a network, the peripheral device generally sends a broadcast signal throughout the network indicating that the peripheral device is connected to the network. By the broadcast signal, the peripheral device communicates its existence to all of the initiators located on the network. Unfortunately, in a typical network, when a target such as a peripheral de ice is attached, the signal broadcasted throughout the network creates data traffic within the network thus slowing down data being transferred between the other peripheral devices and an initiator. This problem becomes progressively worse as multiple targets are added to the network. In addition, broadcasts may not reach all of the initiators due to congestion caused packet drops. Thus, some initiators may not find out about the new devices for quite some time thus detrimentally contributing to lengthened device recognition times.
In view of the foregoing, there is a need for a target discovery and management protocol that removes the data congestion produced by prior art device discovery protocols. There is also a need for an initiator recognition protocol that is optimized for storage and enables fast and efficient utilization in local area networks, wide area networks, and over the Internet.